Page({

  /**
   * 页面的初始数据
   */
  data: {
    price: 0,
    list: [{
        img: '../img/products1.png',
        title: "百万医疗险",
        txt: "保额600万，花多少报多少",
        price: 33,
        slogan: "优质就医服务，放心看病",
        shopId: '1'
      },
      {
        img: '../img/products1.png',
        title: "百万医疗险",
        txt: "保额600万，花多少报多少",
        price: 66,
        slogan: "优质就医服务，放心看病",
        shopId: '2'
      },
      {
        img: '../img/products1.png',
        title: "百万医疗险",
        txt: "保额600万，花多少报多少",
        price: 28,
        slogan: "优质就医服务，放心看病",
        shopId: '3'
      },
    ],
    check: false,
  },
  getTotailPrice(){//金额计算
      let price = 0;
      let list = this.data.list
      list.map(item=>{//循环
        if (item.checked){//选中的所有单位计算总和
          price+=item.price
        }
      })
      this.setData({
        price: price
      })
  },
  checkChange(e) { //单选按钮
    let checked = e.detail.value //获取当前点击的id
    let list = this.data.list
    let items = []
    for (let i = 0; i < list.length; i++) {
      if (checked.indexOf(list[i].shopId.toString()) !== -1) {
        //判断当前id是否存在数据中 如果存在就选中
        items[i] = Object.assign({}, list[i], {
          checked: true
        })
      } else { //不存在  撤销选中
        items[i] = Object.assign({}, list[i], {
          checked: false
        })
      }
    }
    this.setData({ //重新赋值
      list: items
    },()=>{
          let num = 0;//选中的数量
      let listLength = items.length;//购物车  所有商品的数量
          for (let i = 0; i < listLength; i++) {
            if (items[i].checked) {
              num++
            }
          }
        if (num == listLength) {//如果选中数量等于购物车  所有商品的数量
          this.setData({ //全选选中
            check: true
          })      
        }else{
          this.setData({ //全选选中
            check: false
          })       
        }
      }
    )    
    this.getTotailPrice()

  },
  allCheckChange(e) { //全选   
    if (this.data.check == false) { //如果未选中
      this.setData({ //选中
        check: true
      })
      //首先新建一个空数组
      let values = [];
      // 再写个循环   把shopId添加到这个空数组里面
      let list = this.data.list
      list.map(item => {
        values.push(item.shopId)
      })
      this.checkChange({
        detail: {
          value: values
        }
      }) //如果选中所有选中为所有shopId  Md  danci怎么老打错

    } else { //如果选中
      this.setData({ //未选中
        check: false
      })
      this.checkChange({
        detail: {
          value: []
        }
      }) //如果未选中所有选中为空 
    }
    this.getTotailPrice()
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },
  del: function(e) { //谁教你这样写的删除  你是不是脑壳有屎啊
    var current = e.currentTarget.dataset.index;
    var list = this.data.list;
    list.splice(current, 1)
    this.setData({
      list: list
    })
  },


})